package com.unju.ventanas.proyecto.clasificacion;

import javax.swing.DefaultListModel;
import javax.swing.JDialog;
import javax.swing.JPanel;
import javax.swing.JList;
import javax.swing.JScrollPane;
import javax.swing.ListSelectionModel;
import javax.swing.JButton;
import javax.swing.border.TitledBorder;

import com.unju.utils.ConstantesGlobales;
import com.unju.ventanas.principal.JFrmPrincipal;
import com.unju.ventanas.proyecto.JPNuevoProyecto;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.UIManager;

public class JPClasificacionList extends JPanel {

	private static final long serialVersionUID = 489975754367810357L;
	private JList<String> listClasificacion;
	private DefaultListModel<String> modeloClasificacion = new DefaultListModel<>();
	private JDNuevaClasificacion agregarClasificacion;
	private JDBuscarClasificacion buscarClasificacion;

	/**
	 * Create the panel.
	 */
	public JPClasificacionList() {
		crearVentanta();
		crearComponentes();
		crearBotones();
	}
	public void crearVentanta(){
		setBounds(0, 0,280 , 145);
	}
	public void crearComponentes(){
		setBorder(new TitledBorder(UIManager.getBorder("TitledBorder.border"),
				"(*) Clasificacion", TitledBorder.LEADING, TitledBorder.TOP,
				null, null));
		setLayout(null);

		JScrollPane scrollPane = new JScrollPane();
		scrollPane.setBounds(10, 23, 141, 107);
		add(scrollPane);

		listClasificacion = new JList<String>();
		scrollPane.setViewportView(listClasificacion);
		listClasificacion.setModel(modeloClasificacion);
		listClasificacion.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

			}
	public void crearBotones(){
		JButton btnNuevaClasificacion = new JButton(
				ConstantesGlobales.BTN_NUEVO);
		btnNuevaClasificacion.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				agregarElemento();
			}
		});
		btnNuevaClasificacion.setBounds(179, 90, 89, 23);
		add(btnNuevaClasificacion);

		JButton btnQuitarClasificacion = new JButton(
				ConstantesGlobales.BTN_QUITAR);
		btnQuitarClasificacion.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				eliminarElemento();
			}
		});
		btnQuitarClasificacion.setBounds(179, 56, 89, 23);
		add(btnQuitarClasificacion);

		JButton btnBuscarClasificacion = new JButton(
				ConstantesGlobales.BTN_BUSCAR);
		btnBuscarClasificacion.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				buscarElemento();
			}
		});
		btnBuscarClasificacion.setBounds(179, 22, 89, 23);
		add(btnBuscarClasificacion);
	}


	private void buscarElemento() {
		buscarClasificacion = JDBuscarClasificacion.getInstance();
		buscarClasificacion.setModal(true);
		buscarClasificacion.setLocationRelativeTo(JFrmPrincipal.getInstance());
		buscarClasificacion.setVisible(true);
		// TODO
		// falta implementar el metodo para buscar clasificacion

	}

	private void agregarElemento() {
		agregarClasificacion = JDNuevaClasificacion.getInstance();
		agregarClasificacion
				.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
		agregarClasificacion.setLocationRelativeTo(JFrmPrincipal.getInstance());
		agregarClasificacion.setModal(true);
		agregarClasificacion.setVisible(true);

//		if (agregarClasificacion.getGuardado()) {
//			System.out.println("se agregan los datos a la listas.");
//			System.out.println("ANTES: cantidad de registros guardados "
//					+ JPNuevoProyecto.clasificacionesList.size());
//			JPNuevoProyecto.clasificacionesList.add(agregarClasificacion
//					.getClasificacion());
//			String nombre = JPNuevoProyecto.clasificacionesList.get(
//					JPNuevoProyecto.clasificacionesList.size() - 1).getNombre();
//			System.out.println("nombre: " + nombre);
//
//			modeloClasificacion.addElement(nombre);
//			listClasificacion.setSelectedIndex(0);
//
//			System.out.println("DESPUES: cantidad de registros guardados "
//					+ JPNuevoProyecto.clasificacionesList.size());
//		} else {
//			System.out.println("no se guardo la clasificacion..");
//		}
	}

	private void eliminarElemento() {
		int n = 0;
		if (modeloClasificacion.getSize() > 0) {
			System.out.println("ANTES: cantidad de registros guardados "
					+ JPNuevoProyecto.clasificacionesList.size());
			n = listClasificacion.getSelectedIndex();
			modeloClasificacion.removeElementAt(n);
			listClasificacion.setSelectedIndex(0);
			JPNuevoProyecto.clasificacionesList.remove(n);
			System.out.println("DESPUES: cantidad de registros guardados "
					+ JPNuevoProyecto.clasificacionesList.size());
		}
	}

	public JList<String> getListClasificacion() {
		return listClasificacion;
	}

	public void setListClasificacion(JList<String> listClasificacion) {
		this.listClasificacion = listClasificacion;
	}

	public DefaultListModel<String> getModeloClasificacion() {
		return modeloClasificacion;
	}

	public void setModeloClasificacion(
			DefaultListModel<String> modeloClasificacion) {
		this.modeloClasificacion = modeloClasificacion;
	}
}
